The RStudio logo
Olá, pessoa amável da internet. Com esta referência ao Ludoviajante eu inicio um post que está no forno há um tempo. Quero falar um pouco de outros conteúdos que enriquecem mais que as habilidades estatísticas, então concluí que seria uma boa resumir os livros que leio.
Fiz leituras recentes que enriqueceram bastante minha rotina, e bom… Francamente, quem diria que um livro que se chama “o andar do bêbado” teria potencial de se tornar objeto de estudo. A obra de Leonard Mlodinov é um show de storytelling e quero me certificar de que fixei o que li, então espere encontrar aqui um resumo com ‘breaks’ para comentários e demonstrações de alguns dos casos curiosos citados por Leonard.
Durante a graduação de estatistica, esse livro era citado como uma leitura quase que obrigatória, a missão dele parecia ser apresentar a estatística de maneira ludica, mas dizer que essa é a missão do livro deixa muita coisa de fora. Leonard usa exemplos e histórias cativantes para explicar conceitos de probabilidade e quando você acha que se trata de uma aula de exatas disfarçada ele te lembra que probabilidade e sorte são sinônimos, logo passa a focar um pouco mais na palavra sorte e os exemplos que ele usa levam o leitor à questões filosoficas.
No primeiro capítulo o autor faz uma série de perguntas e provocações que envolvem probabilidade. E apresenta dois casos que podem ser demonstrados aqui, o primeiro deles é a teoria de Goldman
Um bom exemplo matemático disso é dado, onde 10 pessoas lançam 10 moedas cada, sabemos que qualquer resultado será um feito de pura sorte, e que acertar várias vezes seguidas a mesma face da moeda seria impressionante, certo?! ainda assim essa simulação reforça a afirmação do livro de que existe aproximadamente 2/3 de chance de ao menos um desses 10 jogadores executar tal feito.
library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.4 v dplyr 1.0.7
## v tidyr 1.1.3 v stringr 1.4.0
## v readr 2.0.1 v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
dfs <- rep(10,10)
set.seed(2021)
myList <- list()
for(i in 1:10000){
myList[[i]] <- map(dfs,
base::sample,
x = 0:1,
replace = TRUE) %>% #10 pessoas lançam 1 moeda 10 vezes (resultados das moedas são independentes, então o ato de lançar 1 moeda 10 vezes equivale ao ato de lançar 10 moedas 1 vez)
sapply(., function(y) sum(y)>= 8 | sum(y)<= 2 ) #se a pessoa tem pelo menos 8 caras ou coroas marcamos como true
}
#chances de pelo menos 1 acertar o minimo 8 de 10 vezes
myList %>%
map(function(y) data.frame(id = paste0("j",1:10),x1 = y)) %>%
map(pivot_wider,names_from = id, values_from = x1) %>%
data.table::rbindlist() %>%
# checa se alguem ganhou numa rodada de 10 lançamentos
mutate(alguem_ganhou = ifelse( rowSums(across(everything())) > 0,1,0) ) %>%
pull(alguem_ganhou) %>%
# probabilidade de que alguem, por acaso, acerte pelo menos 8 de 10 vezes,
# dado um problema com 2 opções de resposta e dado que
# os participantes escolhem as respostas aleatoriamente.
mean()
## [1] 0.6831
#proporcao de vezes onde 1 jogador especifico acertou o minimo de 8 vezes.
myList %>%
map(function(y) data.frame(id = paste0("j",1:10),x1 = y)) %>%
data.table::rbindlist() %>%
group_by(id) %>%
summarise(vitorias = mean(x1))
## # A tibble: 10 x 2
## id vitorias
## <chr> <dbl>
## 1 j1 0.114
## 2 j10 0.109
## 3 j2 0.110
## 4 j3 0.108
## 5 j4 0.109
## 6 j5 0.112
## 7 j6 0.105
## 8 j7 0.112
## 9 j8 0.106
## 10 j9 0.105
Usando probabilidade para provar o mesmo ponto. Considerando a função de distribuição binomial \(f(x) = \binom{n}{k}p^kq^{n-k}\) se 10 moedas comuns (\(p = q = 1/2\)) são jogadas, qual a chance de que 8 ou mais resultados sejam caras ou coroas? a resposta é obtida através de \[\sum_{i=8}^{10}\binom{10}{i}(1/2)^{10} + \sum_{i=0}^{2}\binom{10}{i}(1/2)^{10} &=& \\ 2*\left[ \sum_{i=8}^{10}\binom{10}{i}(1/2)^{10} \right] &=& 0,1094\]
beisebol, “ ao longo de 70 anos, é esperado que algum jogador que habitualmente acerte algo em torno de 40 home runs tenha um pico de 60 ou mais home runs na temporada”, e seja aclamado como herói da temporada mesmo que nunca mais consiga um feito semelhante novamente, mesmo que este evento se comprove ser um fenômeno semelhante ao “estalido ocasional que ouvimos em meio a estática numa ligação telefônica ruim”.
Para fechar o olhar sobre o capítulo 1, seguem 2 passagens que me cativaram :
“Quando examinamos feitos extraordinários, devemos ter em mente que eventos extraordinários podem ocorrer sem causas extraordinárias.”
Há um amplo fosso de aleatoriedade e incerteza entre a criação de algo e seu sucesso. É por isso que as pessoas bem sucedidas em todas as áreas quase sempre fazem parte de um certo conjunto - o conjunto das pessoas que não desistem.
Yihui Xie
In the Middle of Nowhere
Omaha, NE 68022
Email: xie@yihui.name
Homepage: https://yihui.name
Hiring Manager
School of Ninja, Hacker’s University
404 Not Found Road, Undefined 0x1234, NA
December 32, 2018
Dear Hiring Manager,
It is my honor and pleasure to write a letter of recommendation1 for Dr. Emi Tanaka, a great hacker in my eyes.
Emi said it was heck of a praise when I said Earo was a very impressive hacker. Well, the fact is that I have been actually impressed many more times by Emi, which is probably because Earo is a relatively low-key hacker, and I have seen a lot of cool things Emi posted on Twitter this year. If I were to write a full letter about them, it would probably take me two whole days. Below is a one-hour attempt to show the many ways in which she can be so cool.
The kunoichi theme for xaringan, made by Emi
She added the ninja themes to xaringan.
The anicon package to insert animated icons or images or text in R Markdown / xaringan / Shiny.
The datalegreyar package that uses a special typeface to represent data directly with text (which is an even smarter idea than sparklines). Magic.
She discovered the ultimate secret of the “Infinite Moon Reader” in xaringan: when an HTML page is automatically refreshed, the scroll position is preserved. This is extremely helpful when the document is long or has many pages, because otherwise you will have to scroll like crazy to the position where you last viewed. This feature is quite subtle and has been there for almost two years, and Emi was the first person (to my knowledge) who had discovered it and been excited about it.
Obviously she is very good at hacking with CSS. Look at her xaringan slides with the shiny (I mean sparkling) r-ladies theme, and the content is pretty good, too!
The joy over FiraCode (as it was supported in RStudio).
She wrote one of the bestest blogdown tutorials (the level of details is amazing).
And people truly appreciated her blogdown seminar.
Her website is one of the most beautiful websites I have seen. In particular, everyone loved her showcase. Did I mention that it was actually one of the four websites I highlighted in the R Markdown book?
The shiny custom loader. Hahaha. Super fun, and magic.
She can teach statistics courses. I barely remember what linear mixed models are.
And she just started answering #rstats questions on Stack Overflow the other day! Thank you!!
Creative, enthusiastic, excellent taste of design, with great attention to details. That is my overall impression of this hacker.2
The hacker’s way of parking
Yihui Xie
Software Engineer
RStudio, PBC
#A provocação é que nao temos controle de tudo e isso pode ser incrível.
Is this the first letter that contains GIFs ever in the history of human?↩︎
This letter was originally published in my blog at https://yihui.name/en/2018/07/emi-tanaka/.↩︎